home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 021-030 / amok25 / microtimer / runtime.mod < prev    next >
Text File  |  1993-11-04  |  1KB  |  47 lines

  1. (*
  2.   :Program.       RunTime
  3.   :Author.        Volker Rudolph
  4.   :Address.       Medicusstr. 31 / 6750 Kaiserslautern
  5.   :Phone.         0631/17160
  6.   :Version.       1.0
  7.   :Date.          24.4.1989
  8.   :Copyright.     PD
  9.   :Language.      Modula-II
  10.   :Translator.    M2Amiga 3.2d
  11.   :Imports.       MicroTimer [vor], Printf [vor]
  12.   :Contents.      RunTime ermittelt die Ausführungsdauer eines Programmes
  13.   :Usage.         RunTime "<program> <arguments>"
  14. *)
  15.  
  16. MODULE RunTime;
  17.  
  18. FROM Arts IMPORT Assert,wbStarted;
  19. FROM Arguments IMPORT NumArgs, GetArg;
  20. FROM Dos IMPORT Execute;
  21. FROM MicroTimer IMPORT StartTimer, StopTimer, MicrosToTime;
  22. FROM Printf IMPORT Printf1, Printf3;
  23. FROM SYSTEM IMPORT ADR;
  24.  
  25. VAR
  26.   arg:ARRAY [1..40] OF CHAR;
  27.   len:INTEGER;
  28.   result:LONGINT;
  29.   minutes:CARDINAL;
  30.   seconds:CARDINAL;
  31.   micros:LONGINT;
  32. BEGIN
  33.   Assert(NOT wbStarted,ADR("PLEASE USE FROM CLI"));
  34.  
  35.   GetArg(1,arg,len);
  36.   IF (NumArgs() = 1) AND ~((arg[1] = '?') AND (arg[2] = 0C)) THEN
  37.     StartTimer;
  38.     result := Execute(ADR(arg),NIL,NIL);
  39.     StopTimer(micros);
  40.     MicrosToTime(minutes, seconds, micros, micros);
  41.     Printf3("Runtime: %ld mins %ld secs %06ld micros\n",minutes,seconds,micros);
  42.   ELSE
  43.     GetArg(0,arg,len);
  44.     Printf1('Usage:\n  %s "<program> <arguments>"\n',ADR(arg));
  45.   END; (* IF *)
  46. END RunTime.
  47.